﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using planetExpressLib;

namespace planet_express
{
    public partial class Registro : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            provinciaList.Visible = false;
        }
      
        //habilita la seleccion de provincia una vez elegido pais
        protected void paisList_SelectedIndexChanged(object sender, EventArgs e)
        {
            provinciaList.Visible = true;
        }

        protected void enviar_Click(object sender, EventArgs e)
        {

            if (ValidaDatos())
            {
                clienteEN c = new clienteEN();

                c.Usuario = user.Text;
                c.Pass = pass.Text;
                c.Id_usuario = Int32.Parse(id.Text);
                c.Nombre = nombre.Text;
                c.Apellidos = apellidos.Text;
                c.Mail = mail.Text;
                c.FechaNac = Calendar1.SelectedDate.ToString();
                c.Pais = paisList.SelectedValue;
                c.Provincia = provinciaList.SelectedValue;
                c.Ciudad = ciudad.Text;
                c.Direccion = direccion.Text;
                c.Telefono = telefono.Text;
                if (DropDownList1.SelectedValue == "true") c.Vip = true;
                else c.Vip = false;

                clientesCAD cad = new clientesCAD();
                cad.insert(c);

                //guardo variables de sesion
                Session["login"] = c.Usuario;
                Session["nombre"] = c.Nombre;
                Response.Redirect("Default.aspx"); //redirecciono a la pagina principal por ahora
            }
        }

        public bool ValidaDatos()
        {
            bool correcto = true;
            //comprueba usuario unico
            List<clienteEN> nombres = new clientesCAD().readAll();

            foreach (clienteEN n in nombres)
            {
                if (n.Usuario == user.Text)
                {
                    Label3.Text = "Ese nombre de usuario ya existe, elija otro.";
                    correcto = false;
                }
                if (n.Id_usuario == Int32.Parse(id.Text))
                {
                    Label1.Text = "Usted ya es un usuario registrado.";
                    correcto = false;
                }
            }

            //Comprueba NIF
            int x = 0, pos = 0;
            string[] l = { "T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E" };

            try
            {
                x = Convert.ToInt32(id.Text);
                pos = x % 23;
                if (l[pos] != letra.Text.ToUpper())
                {
                    Label1.Text = "CIF/NIF no valido. ";
                    correcto = false;
                }
                else
                    Label1.Text = "";
            }
            catch (System.FormatException)
            {

            }
            catch (System.OverflowException)
            {

            }

            //Comprueba Calendario
            if (Convert.ToInt32(System.DateTime.Today.Year) - Convert.ToInt32(Calendar1.SelectedDate.Year) < 18)
            {
                if (System.DateTime.Today.DayOfYear < Calendar1.SelectedDate.DayOfYear)
                {
                    Label2.Text = "Debe ser mayor de 18 a&ntilde;os";
                    correcto = false;
                }
            }
            else
                Label2.Text = "";

            //Comprueba que los campos estén llenos
            if (user.Text == "" || pass.Text == "" || passOk.Text == "" || id.Text == "" || letra.Text == "" || nombre.Text == "" || apellidos.Text == "" || mail.Text == "")
            {
                correcto = false;
            }

            return correcto;
        }


    }
}